package utils.advancedSocket;
import java.util.EventObject;

import protocol.arq.ARQ;

/**
 * Represente un evenement pour un {@link AdvancedSocket}.
 * 
 * @author Bertholet Damien & Daoust Julien
 */
public class AdvancedSocketEvent extends EventObject {

	private static final long serialVersionUID = 1640168518939078765L;

	private String data;
	private char c = '0';

	/**
	 * Constructeur.
	 * 
	 * @param advancedSocket
	 *            La source de l'evenement.
	 * @param data
	 *            Les donnees.
	 */
	public AdvancedSocketEvent(AdvancedSocket advancedSocket, String data) {
		super(advancedSocket);
		this.data = data;
	}

	/**
	 * Constructeur.
	 * 
	 * @param advancedSocket
	 *            La source de l'evenement.
	 * @param c
	 *            Le caractere recu.
	 */
	public AdvancedSocketEvent(AdvancedSocket advancedSocket, char c) {
		super(advancedSocket);
		this.c = c;
	}

	/**
	 * Retourne l'{@link ARQ} source de l'evenement.
	 * 
	 * @return L'{@link ARQ} source de l'evenement.
	 */
	public ARQ getARQ() {
		return (ARQ) getSource();
	}

	/**
	 * <p>
	 * Retourne les donnees associe a l'evenement.
	 * </p>
	 * <p>
	 * Sera <code>null</code> dans le cas d'une reception.
	 * </p>
	 * 
	 * @return Les donnees.
	 */
	public String getData() {
		return data;
	}

	/**
	 * <p>
	 * Retourne les donnees associe a l'evenement.
	 * </p>
	 * <p>
	 * Sera toujours <code>0</code> dans le cas d'un envoie.
	 * </p>
	 * 
	 * @return Les donnees.
	 */
	public char getChar() {
		return c;
	}
}